#pragma once
#include "IGameState.h"

#include "..\..\SGD Wrappers\SGD_Handle.h"

class OptionsState : public IGameState
{
private:
	/**********************************************************/
	// SINGLETON!
	OptionsState(void) = default;
	virtual ~OptionsState(void) = default;

	OptionsState(const OptionsState&) = delete;
	OptionsState& operator= (const OptionsState&) = delete;

	// Background Image
	SGD::HTexture hBackground = SGD::INVALID_HANDLE;

	// Audio Assets
	SGD::HAudio hBackgroundMusic = SGD::INVALID_HANDLE;
	SGD::HAudio hSfx = SGD::INVALID_HANDLE;

	// Cursor Location
	int nCursor;

	// Volume
	int	nMusicVol = 0;
	int	nSfxVol = 0;
	bool bPlayAudio = true;
	
	// Fullscreen
	bool bFullscreen = false;

public:
	/**********************************************************/
	// Singleton Accessor
	static OptionsState* GetInstance(void);

	virtual void Enter();
	virtual void Exit();
	virtual bool Update(float dt);
	virtual void Render();
};

